package com.redepronik.medisys.cithis.entity;

import java.io.Serializable;
import javax.persistence.*;
import java.util.List;


/**
 * The persistent class for the medicamentogenericos database table.
 * 
 */
@Entity
@Table(name="medicamentogenericos")
@NamedQuery(name="Medicamentogenerico.findAll", query="SELECT m FROM Medicamentogenerico m")
public class MedicamentoGenerico implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@SequenceGenerator(name="MEDICAMENTOGENERICOS_MEDICAMENTOGENERICOID_GENERATOR" )
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="MEDICAMENTOGENERICOS_MEDICAMENTOGENERICOID_GENERATOR")
	@Column(unique=true, nullable=false)
	private Integer medicamentogenericoid;

	@Column(nullable=false, length=100)
	private String descripcion;

	//bi-directional many-to-one association to Medicamentocomerciale
	@OneToMany(mappedBy="medicamentogenerico")
	private List<MedicamentoComercial> medicamentocomerciales;

	//bi-directional many-to-one association to Medicamentopresentacione
	@OneToMany(mappedBy="medicamentogenerico")
	private List<MedicamentoPresentacion> medicamentopresentaciones;

	//bi-directional many-to-one association to Receta
	@OneToMany(mappedBy="medicamentogenerico")
	private List<Receta> recetas;

	public MedicamentoGenerico() {
	}

	public Integer getMedicamentogenericoid() {
		return this.medicamentogenericoid;
	}

	public void setMedicamentogenericoid(Integer medicamentogenericoid) {
		this.medicamentogenericoid = medicamentogenericoid;
	}

	public String getDescripcion() {
		return this.descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public List<MedicamentoComercial> getMedicamentocomerciales() {
		return this.medicamentocomerciales;
	}

	public void setMedicamentocomerciales(List<MedicamentoComercial> medicamentocomerciales) {
		this.medicamentocomerciales = medicamentocomerciales;
	}

	public MedicamentoComercial addMedicamentocomerciale(MedicamentoComercial medicamentocomerciale) {
		getMedicamentocomerciales().add(medicamentocomerciale);
		medicamentocomerciale.setMedicamentogenerico(this);

		return medicamentocomerciale;
	}

	public MedicamentoComercial removeMedicamentocomerciale(MedicamentoComercial medicamentocomerciale) {
		getMedicamentocomerciales().remove(medicamentocomerciale);
		medicamentocomerciale.setMedicamentogenerico(null);

		return medicamentocomerciale;
	}

	public List<MedicamentoPresentacion> getMedicamentopresentaciones() {
		return this.medicamentopresentaciones;
	}

	public void setMedicamentopresentaciones(List<MedicamentoPresentacion> medicamentopresentaciones) {
		this.medicamentopresentaciones = medicamentopresentaciones;
	}

	public MedicamentoPresentacion addMedicamentopresentacione(MedicamentoPresentacion medicamentopresentacione) {
		getMedicamentopresentaciones().add(medicamentopresentacione);
		medicamentopresentacione.setMedicamentogenerico(this);

		return medicamentopresentacione;
	}

	public MedicamentoPresentacion removeMedicamentopresentacione(MedicamentoPresentacion medicamentopresentacione) {
		getMedicamentopresentaciones().remove(medicamentopresentacione);
		medicamentopresentacione.setMedicamentogenerico(null);

		return medicamentopresentacione;
	}

	public List<Receta> getRecetas() {
		return this.recetas;
	}

	public void setRecetas(List<Receta> recetas) {
		this.recetas = recetas;
	}

	public Receta addReceta(Receta receta) {
		getRecetas().add(receta);
		receta.setMedicamentogenerico(this);

		return receta;
	}

	public Receta removeReceta(Receta receta) {
		getRecetas().remove(receta);
		receta.setMedicamentogenerico(null);

		return receta;
	}

}